package com.yxx.business.service;

import java.util.List;

import com.yxx.business.entity.TbEngineeringDo;
import com.yxx.business.entity.TbEngineeringVo;
import com.yxx.business.entity.TbEngineeringQueryDto;
import com.yxx.business.entity.TbEngineeringEditDto;
import com.yxx.common.core.domain.PageResult;
import com.yxx.common.core.service.IServicePlus;

/**
 * 工程信息Service接口
 *
 * @author yxx
 * @date 2025-08-03
 */
public interface ITbEngineeringService extends IServicePlus<TbEngineeringDo> {

    /**
     * 查询工程信息分页结果
     *
     * @param tbEngineeringQueryDto 工程信息查询实体
     * @return 工程信息分页
     */
    public PageResult<TbEngineeringVo> selectTbEngineeringPage(TbEngineeringQueryDto tbEngineeringQueryDto);

    /**
     * 查询工程信息Vo列表
     *
     * @param tbEngineeringQueryDto 工程信息查询实体
     * @return 工程信息集合
     */
    public List<TbEngineeringVo> selectTbEngineeringVoList(TbEngineeringQueryDto tbEngineeringQueryDto);

    /**
     * 查询单个工程信息
     *
     * @param engineeringId 工程信息主键
     * @return 工程信息单个
     */
    public TbEngineeringVo selectTbEngineeringByEngineeringId(Long engineeringId);

    /**
     * 新增工程信息
     *
     * @param tbEngineeringQueryDto 工程信息编辑实体
     * @return 结果
     */
    public int insertTbEngineering(TbEngineeringEditDto tbEngineeringQueryDto);

    /**
     * 修改工程信息
     *
     * @param engineeringId 主键
     * @param tbEngineeringQueryDto 工程信息编辑实体
     * @return 结果
     */
    public int updateTbEngineering(Long engineeringId, TbEngineeringEditDto tbEngineeringQueryDto);

    /**
     * 批量删除工程信息
     *
     * @param engineeringIds 工程信息主键集合
     * @return 结果
     */
    public int deleteTbEngineeringByEngineeringIds(List<Long> engineeringIds);

    /**
     * 删除单个工程信息信息
     *
     * @param engineeringId 工程信息主键
     * @return 结果
     */
    public int deleteTbEngineeringByEngineeringId(Long engineeringId);
}
